#ifndef MOVEPIECENETWORKEVENT_H_
#define MOVEPIECENETWORKEVENT_H_

#include "NetworkEvent.h"

class MovePieceNetworkEvent : public NetworkEvent
{
public:
    enum Direction
    {
        LEFT,
        RIGHT,
        DOWN,
        INSTANT_DOWN,
        ROTATE
    };

    struct Data
    {
        Direction direction;
    };

    struct Message
    {
        Header header;
        Data data;
    };

    MovePieceNetworkEvent(Direction direction);
    MovePieceNetworkEvent(const Header& header, const Data& data);
    virtual ~MovePieceNetworkEvent();

    virtual void visitWellModel(WellModel* wellModel) const;

    virtual void* getMessageBlob();
    virtual size_t getMessageBlobSize();

private:
    Message message;

};

#endif
